import { $get, $post } from '../utils/request.ts'

// 登录请求封装
export const $Login = async (params: { username: string, captcha: string}) => {
    try {
        const res = await $post('/pc/user/pcLogin', params); // 调用POST请求，传递参数
        return res; // 返回接口返回的结果
    } catch (error) {
        console.error('登录失败:', error);
        throw error; // 抛出错误，方便上层捕获
    }
};


// 用户注册请求封装
export const $register = async (params: { email: string, code: string }) => {
    try {
        const res = await $post('/pc/user/register', params); // 调用POST请求，传递注册参数
        return res; // 返回接口返回的结果
    } catch (error) {
        console.error('注册失败:', error);
        throw error; // 抛出错误，方便上层捕获
    }
};

// 定义获取验证码的方法
export const $getCode = async (key: string) => {
    // 拼接正确的 URL，动态传递 key
    const url = `/pc/user/randomImage/${key}`;

    try {
        const res = await $get(url);
        return res; // 返回请求结果
    } catch (error) {
        console.error('获取验证码失败:', error);
        throw error; // 抛出错误，方便上层处理
    }
};


// 退出登录请求封装
export const $logout = async () => {
    try {
        const res = await $post('/pc/user/logout', {}); // 退出登录请求
        return res; // 返回退出登录的结果
    } catch (error) {
        console.error('退出登录失败:', error);
        throw error; // 抛出错误，方便上层处理
    }
};

// 发送验证码请求封装
export const $sendSms = async (email: string) => {
    const params = { email };

    try {
        const res = await $post('/pc/user/sms', params); // 调用发送验证码接口
        return res;
    } catch (error) {
        console.error('请求失败:', error);
        throw error; // 抛出错误，方便上层处理
    }
};


/**
 * 个人中心修改用户信息
 * @param params 请求参数，包含用户的修改信息
 * @returns 返回请求的结果
 */
export const $editUserInfo = async (params: {
    nikename?: string;
    signature?: string;
    sex?: number;
    birthday?: Date;
    phone?: string;
    school?: string;
}) => {
    try {
        const res = await $post('/pc/user/editUserInfo', params); // 调用POST请求，传递参数
        return res; // 返回接口返回的结果
    } catch (error) {
        console.error('修改用户信息失败:', error);
        throw error; // 抛出错误，方便上层捕获
    }
};


// 用于更新用户头像的接口
export const $updateUserAvatar = async (avatarUrl: string) => {
    try {
        const res = await $post('/pc/user/updateUserAvatar', { avatar: avatarUrl });
        return res; // 返回接口返回的结果
    } catch (error) {
        console.error('更新头像失败', error);
        throw error; // 抛出错误，方便上层捕获
    }
};